package com.src.iseclive.config;

import android.app.Application;
import android.content.Context;

import com.squareup.leakcanary.LeakCanary;
import com.src.iseclive.BuildConfig;
import com.src.iseclive.base.delegate.AppLifecycles;

import butterknife.ButterKnife;
import timber.log.Timber;

/**
 * @author liujiancheng
 * @name IsecLive
 * @class name：com.src.iseclive.config
 * @class App代理实现
 * 用于第三库的初始化工作以及dex分包策略
 * @time 2018/3/20 9:27
 * @change
 * @chang time
 * @class describe
 */

public class InitAppLifecycle implements AppLifecycles {
    @Override
    public void attachBaseContext(Context base) {
//          MultiDex.install(base);  //这里比 onCreate 先执行,常用于 MultiDex 初始化,插件化框架的初始化

    }

    @Override
    public void onCreate(Application application) {

        if (BuildConfig.DEBUG) {
            //设置Timber的Debug模式
            Timber.plant(new Timber.DebugTree());
            //设置ButterKnife的Debug模式
            ButterKnife.setDebug(true);
        }

        //LeakCanary初始化
        // LeaKCanary在Gradle中使用的是release和debug分别进行的依赖，所以初始化过程中不用判断是否是debug模式
        if (LeakCanary.isInAnalyzerProcess(application)) {
            //判断是否是监测的进程
            return;
        }
        LeakCanary.install(application);


    }

    @Override
    public void onTerminate(Application application) {

    }
}
